home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Xenosoft 2
/
Xenosoft 2 (Game collection)(1994).iso
/
bioforge
/
script
/
ai_lex.scp
< prev
next >
Wrap
Text File
|
1994-12-07
|
11KB
|
532 lines
// THIS IS CALLED EVERY TIME LEX IS LOADED UP, INCLUDING FROM SAVEGAMES. SO
// WE DON'T WANT TO RESTART THIS PROCESS EVERYTIME. -BES
{ LEX_LOAD
//@PROCESS LEX_BLINKY
@Çì LEX_WOUNDS
^ïÿ = 0; // SHOULD BE RESET IN CASE SAVED AS 1
}
{ LEX_BLINKY
:TOP
W 3 SECONDS
I @Ç⌐ (LEX) THEN
@Ç¥ BLINK
J #Çé
}
{ KILLLEX
I ( ^ïÅ ) THEN // ONLY KILL LEX ONCE!
é
^ïÅ = 1
// THIS IS JUST A LITTLE INSURANCE THAT MAKES CERTAINS THERE
// IS NOW WAY TO BREAK OUT OF THE DEAD LOOP.
Æ
// NEED A CALL TO STOP WHATEVER MONITOR MAY BE RUNNING RIGHT HERE: -KLD
I ( @Çú () = 1 ) THEN
{
@Ç¥ EXITMONITOR // MUST NOT CONTINUE UNTIL EXITMONITOR FINISHED
}
// THE SCREEN MIGHT BE BLACK AT THIS POINT, AND/OR NOTHING INTERESTING
// MIGHT BE HAPPPENING, SO ONLY WAIT FOR TWO SECONDS. IMPOSE A
// LONGER WAIT ON A PER-CASE BASIS IF YOU WANT ONE. -KLD
// YOU MAY IMPOSE A LONGER WAIT BY SETTING _DELAY_BEFORE_RELOAD - LRG
I ( ^ïù ) THEN
W ^ïù SECONDS
^ïù = 2 // RESET VARIABLE
// TAKE THIS OUT BEFORE WE SHIP!!!!! - LRG
// AT THIS POINT, YOU MAY HAVE BEEN BROUGHT BACK TO LIFE
// BY THE LIVE CODE. -KLD
I ( ^ïÅ != 1 ) THEN
é
// THIS MAKES CERTAIN THAT THE TITLE SCREEN IS SHOWN BEHIND THE
// OPTIONS. -KLD
//@FADE HIDE
//CAMERA SHOW TITLE
//SUSPEND
// MAKE CERTAIN THAT ANY FADE-OUTS WILL NOT EFFECT THE SCREEN -
// AVOID DOING OPTIONS ON A BLACK SCREEN!
Ü ( 0, 0, 0, 999 )
// STOP ANY EARTHQUAKES AND MAKE SURE THE SCREEN IS OFFSET TO ZERO.
ì 0
ì MOVE 0 0 0 0
O $Çà
^ïÿ = 1;
C SHOW STITLE
//@FADE SHOW
H
}
{ DAMAGE_LEX_IMPACT _AMOUNT
@Ç¢ PLAYER
D ~ÇÇ IMPACT
I .ÇâÇÇ <= 0 THEN
{
// IMPOSING A WAIT HERE TO LET MONSTERS FINISH VICTORY TAUNTS...
^ïù = 7
@Çì KILLLEX
}
}
{ DAMAGE_LEX_ENERGY _AMOUNT
@Ç¢ PLAYER
D ~ÇÇ ENERGY
I .ÇâÇÇ <= 0 THEN
{
// IMPOSING A WAIT HERE TO LET MONSTERS FINISH VICTORY TAUNTS...
^ïù = 7
@Çì KILLLEX
}
}
{ LEX_DEATH
// DON'T DIE INSIDE A MONITOR... - LRG
I ( @Çú ) THEN
{
@Ç¥ EXITMONITOR // MUST NOT CONTINUE UNTIL EXITMONITOR FINISHED
}
A OFF
u CURFIG OFF
║ ON
M DIE
o
// IMPOSING A WAIT HERE TO LET MONSTERS FINISH VICTORY TAUNTS...
^ïù = 7
@Ç¥ KILLLEX
}
// LEX_IDLE WILL SELECT RANDOMLY AMONG 5 SEPERATE STAND MOTIONS
{ LEX_STAND
I @ÇÄ (ZEG) THEN
{
M FLOAT
é
}
:TOP
M STAND CONTINUE
W @Çà (2,14) SECONDS
I ( ^Ç│ == 0 ) THEN
{
I @ÇÆ RTHAND THEN
{
// LOOK BEHIND MYSELF
I @Çà (10,20) < 15 THEN
M STAND_3
E
M STAND_4
}
E
{
N @Çà (2,4)
{
U 2 // FOLD ARMS
M STAND_1
X ÇÇ
U 3 // SCRATCH BELLY
M STAND_2
X ÇÇ
U 4 // LOOK BEHIND MYSELF
I @Çà (10,20) < 15 THEN
M STAND_3
E
M STAND_4
X ÇÇ
}
}
}
J #Çê
}
{ LEX_WALK
I .ÇéÇÇ < 33 THEN
M WALK_DMG2
E I .ÇéÇÇ < 66 THEN
M WALK_DMG1
E
M WALK
}
{ LEX_RUN
I .ÇéÇÇ < 33 THEN
{
M RUN CONTINUE
W 10
A OFF
M RUN_N_FALL
M GET_UP_FORWARD
A ON
}
E
M RUN
}
{ LEX_WALK_BACK
I .ÇéÇÇ < 33 THEN
M LIMP_BACK
E
M WALK_BACK
}
{ LEX_ATK_SHOOT
I @Çæ (RTHAND,GRENADE) THEN
M GRENADE_TOSS
// IF PFD IS CHARGED, FIRE IT IN PREFERENCE TO ALL OTHER WEAPONS
E I ^ïé = 1 OR ^Ç╝ THEN
{
^ïé = 0
@Çì FIRE_PFD
// MOTION PFD_SHOOT_1
// @MAKEMISSILE BOLTPFD LTLOWARM 6 15 (0,0,0)
// MOTION PFD_SHOOT_2
I ^Ç╝ = 0 THEN
{
W 3 SECONDS
i LEX PFDONCE
}
}
E I @Çæ (RTHAND,BLASTER) = $Ç╝ OR @Çæ (RTHAND,TONFA) = $Ç╝ THEN
{
I @Ç⌐ (LEXMIR) THEN
{
M ATK_SHOOT_FAIL
@Çì ADDLOGWEAPONSFAIL
é
}
I @ÇÄ (PAD3) OR @ÇÄ (PAD4) THEN
M SHOOT_UP
E
M ATK_SHOOT
}
}
{ FIRE_PFD
{
I (^Ç╝ = 1 ) THEN
@Çì FIRE_PFD_BLST_SET
E
@Çì FIRE_PFD_BLST
}
M PFD_SHOOT_1
@Ç╣ BOLTPFD LTLOWARM 6 15 (0,0,0)
M PFD_SHOOT_2
}
[ FIRE_PFD_BLST
//THIS TIMING WORKS FOR NORMAL FIRING OF PFD, BUT NOT FOR SET SCENE
01:00 e PFDBLST
01:00 f LTLOWARM
01:00 v CURITEM PDFFR0 ON INCREMENT 4
01:00 v CURITEM PDFSD0 ON INCREMENT 4
01:15 ┤
]
[ FIRE_PFD_BLST_SET
//THIS TIMING WORKS FOR SET SCENE FIRING OF PFD, BUT NOT FOR NORMAL
00:25 e PFDBLST
00:25 f LTLOWARM
00:25 v CURITEM PDFFR0 ON INCREMENT 4
00:25 v CURITEM PDFSD0 ON INCREMENT 4
01:25 ┤
]
{ LEX_SHOOT
I @Çæ (RTHAND,GRENADE) THEN
M GRENADE_TOSS
// IF PFD IS CHARGED, FIRE IT IN PREFERENCE TO ALL OTHER WEAPONS
E I ^ïé = 1 OR ^Ç╝ THEN
{
^ïé = 0
@Çì FIRE_PFD
// MOTION PFD_SHOOT_1
// @MAKEMISSILE BOLTPFD LTLOWARM 6 15 (0,0,0)
// MOTION PFD_SHOOT_2
I ^Ç╝ = 0 THEN
{
W 3 SECONDS
i LEX PFDONCE
}
}
E I @Çæ (RTHAND,BLASTER) = $Ç╝ OR @Çæ (RTHAND,TONFA) = $Ç╝ THEN
{
I @Ç⌐ (LEXMIR) THEN
{
M SHOOT_FAIL
@Çì ADDLOGWEAPONSFAIL
é
}
I @ÇÄ (PAD3) OR @ÇÄ (PAD4) THEN
M SHOOT_UP
E
M SHOOT
}
}
{ ADDLOGWEAPONSFAIL
W 2 SECONDS
i LEX WEAPONSFAIL
}
{ LEX_ENTER_COMBAT
I @Ç⌐ ( HARD) THEN
@Ç¥ ( HARD_ENTER_COMBAT)
E
{
M ENTER_COMBAT
w CURFIG CLEAR MDHNRR1 PICTURE 2
w CURFIG CLEAR MDHNRF1 PICTURE 3
w CURFIG CLEAR MDHNLL1 PICTURE 4
w CURFIG CLEAR MDHNLF3 PICTURE 5
}
}
{ LEX_LEAVE_COMBAT
I @Ç⌐ ( HARD) THEN @Ç¥ ( HARD_LEAVE_COMBAT)
E
{
w CURFIG RESTORE MDHNRR1
w CURFIG RESTORE MDHNRF1
w CURFIG RESTORE MDHNLL1
w CURFIG RESTORE MDHNLF3
}
}
{ LEX_STIMULUS( _DAMAGE )
P ~Çü
:GOT_HIT
I ( @Ç⌐ ( HARD ) ) THEN
{
^ïÉ = ^ïÉ - ~ÇÇ
}
I ( @Çó ( ^ï¥ ) == $Ç╝ ) THEN
{
( ^ï₧ )
}
é
}
{ LEX_BAT_100_TAKE
@üì `ëª "a battery/GEine Batterie/F" //@@@ PLEASE TRANSLATE
}
{ LEX_BAT_150_TAKE
@üì `ëª "a battery/GEine Batterie/F" //@@@ PLEASE TRANSLATE
}
{ LEX_ABAT_500_TAKE
@üì `ëº "an alien battery/GEine ausserirdische Batterie/F" //@@@ PLEASE TRANSLATE
}
{ LEX_BLASTER_TAKE
@üì `ë¿ "a blaster/GEin Strahler/F" //@@@ PLEASE TRANSLATE
}
{ LEX_BLASTER2_TAKE
@üì `ë¿ "a blaster/GEin Strahler/F" //@@@ PLEASE TRANSLATE
}
{ LEX_BLASTERM2_TAKE
@üì `ë¿ "a blaster/GEin Strahler/F" //@@@ PLEASE TRANSLATE
}
{ LEX_BLASTERM3B_TAKE
@üì `ë¿ "a blaster/GEin Strahler/F" //@@@ PLEASE TRANSLATE
}
{ LEX_BLASTERM5_TAKE
@üì `ë¿ "a blaster/GEin Strahler/F" //@@@ PLEASE TRANSLATE
}
{ LEX_BLOCK_TAKE
@üì `ë⌐ "an alien artifact/GEin ausserirdisches Atrefakt/F" //@@@ PLEASE TRANSLATE
W 5 SECONDS
i LEX ARTIFACT
}
{ LEX_BOMB_TAKE
@üì `ë¬ "a bomb!" //@@@ PLEASE TRANSLATE
}
{ LEX_CAYARM_TAKE
@üì `ë½ "a severed arm" //@@@ PLEASE TRANSLATE
W 3 SECONDS
i LEX ARMOFF
}
{ LEX_CAYLOG_TAKE
I ^Çú THEN
{
I ^Çñ THEN
@üì `ë¼ "Caynan's logbook" //@@@ PLEASE TRANSLATE
E
@üì `ë¡ "Caynan's logbook?" //@@@ PLEASE TRANSLATE
}
E
@üì `ë« "a logbook" //@@@ PLEASE TRANSLATE
}
{ LEX_DANELOG_TAKE
I ^Çú THEN
@üì `ë» "Dane's logbook" //@@@ PLEASE TRANSLATE
E
@üì `ë« "a logbook" //@@@ PLEASE TRANSLATE
}
{ LEX_FLUTE_TAKE
@üì `ë░ "a flute" //@@@ PLEASE TRANSLATE
}
{ LEX_FORK_TAKE
@üì `ë▒ "a fork" //@@@ PLEASE TRANSLATE
W 3 SECONDS
i LEX FINDFORK
^ï⌐ = $Ç╝
}
{ LEX_FORK_DROP
^ï⌐ = $Ç╗
}
{ LEX_GRENADE_TAKE
@üì `ë▓ "a grenade!" //@@@ PLEASE TRANSLATE
}
{ LEX_KEY_TAKE
@üì `ë⌐ "an alien artifact/GEin ausserirdisches Atrefakt/F" //@@@ PLEASE TRANSLATE
}
// THERE IS NO E IN KEYDEVICE. -KLD
{ LEX_KEYDVICE_TAKE
@üì `ë│ "a device with a button" //@@@ PLEASE TRANSLATE
}
{ LEX_LEXLOG_TAKE
@üì `ë« "a logbook" //@@@ PLEASE TRANSLATE
}
{ LEX_LOGA_TAKE
@üì `ë« "a logbook" //@@@ PLEASE TRANSLATE
}
{ LEX_LOGB_TAKE
@üì `ë« "a logbook" //@@@ PLEASE TRANSLATE
}
{ LEX_MEAT_TAKE
@üì `ë╡ "a hunk of meat" //@@@ PLEASE TRANSLATE
}
{ LEX_MEDICAID_TAKE
@üì `ë╢ "a medical device" //@@@ PLEASE TRANSLATE
}
{ LEX_PHOTO_TAKE
@üì `ë╖ "a photograph" //@@@ PLEASE TRANSLATE
}
{ LEX_REFLECT_TAKE
@üì `ë╕ "a shimmering cube" //@@@ PLEASE TRANSLATE
W 5 SECONDS
i LEX ASHLD
}
{ LEX_REFLECT_DROP
// IF LEX IS NOT WEARING THE MIRROR SUIT DON'T DO ANYTHING
I @Ç⌐ (LEXMIR) != 1 THEN é
I @Çó ^ä╝ THEN
^ä╝
ù (LEX)
I @ÇÄ BCH || @ÇÄ LND || @ÇÄ PAD THEN
{
M CHOKE
@Ç¥ KILLLEX
é
}
}
{ LEX_SCANNER_TAKE
@üì `ë╣ "a scanning device" //@@@ PLEASE TRANSLATE
}
{ LEX_TONFA_TAKE
@üì `ë║ "a big gun" //@@@ PLEASE TRANSLATE
W 10 SECONDS
i LEX TONFA
}
{ LEX_WTALKY_TAKE
@üì `ë╗ "a damaged walky-talky" //@@@ PLEASE TRANSLATE
}
{ LEX_LOG_ADDED
@Ç¢ PLAYER
@Çå `äñ
v CURFIG LEXPIM ON INCREMENT 60
}
{ LEX_LOG_SEEN
@Ç¢ PLAYER
v CURFIG LEXPIM OFF
w CURFIG RESTORE LEXPIM
}
//$ 26 - version number